2.25 拡張ソース整形
拡張ソース整形は一連のFortranソース・ファイル(固定形式でも自由形式でも良い)を処理し、 それぞれについて、それらの整形された結果を自由形式で出力します。 Cファイル及びFPPにより処理されたファイルは整形できません。 通常の(拡張ではない)ソース整形の場合とは異なり、 拡張ソース整形ではFortranソース・ファイルがエラー無しでコンパイルできるものでなければなりません。
拡張ソース整形は以下のコンパイラ・オプションをコンパイル時と同じ意味として解釈します。 -132, -abi, -dcfuns, -double, -dryrun, -dusty, -encoding, -english, -f2003, -f2008, -f95, -fixed, -free, -help, -I, -i8, -indirect, -info, -kind, -max_parameter_size, -maxcontin, -mismatch, -mismatch_all, -nihongo, -nocheck_modtime, -nomod, -noqueue, -o, -openmp, -Qpath, -r8, -strict95, -tempdir, -thread_safe, -u, -u=sharing, -v, -V, -w and -xlicinfo.
拡張ソース整形は-idcase=Asisを除く全てのソース整形オプションを含みます。
nagfor =polish
の場合とは異なり、
-name_scopes=Asisを指定した際の振る舞いは、
-name_scopes=Keywords(デフォルト)を指定したかのようになります。
同様に、-array_constructor_brackets=Asisを指定した際の振る舞いは、
-array_constructor_brackets=ParenSlash(デフォルト)を指定したかのようになります。
-dcolon_in_decls=Asisも同様に、
-dcolon_in_decls=Insert(デフォルト)を指定したかのようになります。
-oオプションが指定されなかった場合に使われる、 デフォルトの出力ファイル名の拡張子は‘.f90_epo’です。
以下の追加オプションで本ツールの処理を制御します。
- -add_arg_keywords
- 明示的な引用仕様を持ち、且つ2つ以上の仮引数を持つユーザ定義の手続き、
及び3つ以上の仮引数を持つ組込みモジュール手続き(例外:
MAX
及びMIN
)の参照において、 実引数にキーワードを追加します。文番号引数が後に続く引数にはキーワードは追加されません。 引数の順序は変更されません。
本オプションは-add_arg_keywords=all2,intrinsic3と同等です。
- -add_arg_keywords=proc_class_list
- proc_class_listで示される一連の手続きで、
手続きが明示的な引用仕様宣言を持つ場合に、
手続き参照における実引数にキーワードを追加します。
it{proc_class_list}はカンマ区切りで、以下を含める事ができます。
all (一連の全ての手続き), bound (実体結合手続き、及び型結合手続き), dummy (仮手続き), external (外部手続き), internal (内部手続), intrinsic (組込み手続き及び組込みモジュール手続き), module (非組込みモジュール手続き), user (組込み手続きと組込みもジュール手続き以外の手続き). 文番号引数が後に続く引数にはキーワードは追加されません。 引数の順序は変更されません。 手続きポインタ成分は“実体結合手続き”としても知られていて、 -add_arg_keywords=boundに含まれます。 名前付き手続きポインタは外部手続きとして取り扱われます。 従って-add_arg_keywords=externalに含まれます。
サブオプションの名前にはゼロではない数字一文字を付加できます。 例)“intrinsic3” このサブオプションによって、指定された数以上の仮引数をもつ手続きについてのみ、 キーワードが追加されます。 型結合手続き及び実体結合手続きについては、 渡される実体の仮引数は、この数に含まれません。(引数並びに出現しないので) 組込み関数
MAX
及びMIN
は代わりに実引数の数を用います。サブオプション名+数字一文字に続いて‘a’が続く場合(“intrinsic3a”等)、 引数の制限は、手続き参照における実引数の数に対して適用されるのであって、 仮引数の数に対してではありません。(実引数の数は、省略可能な引数が省略された場合、 仮引数の数より小さくなります)
サブオプションは左から右へ解釈されるので、 後から指定したサブオプションが、 先に指定されたサブオプションを上書きする事に注意して下さい。
- -case:kind=case-list
- 特定の種類の名前に関しての文字の種類に関するルールを指定します。
このオプションは、-casexを除く他の文字種に関するオプションをオーバーライドします。
コロンの後には、“kind=case”のカンマ区切りのリストが続きます。
ここで、caseは大文字小文字の指定(
UPPERCASE
、lowercase
、Capitalised
、Camel_Case
)で、kindは、以下にリストされているカテゴリの1つです。comp
Component constr
Construct name intr
Intrinsic procedure param
PARAMETER proc
Procedure tbp
Type-bound procedure tparam
Derived type parameter type
Derived type var
Variable たとえば、-case:var=lower、proc=uは、変数に小文字を指定し、手続きに大文字を指定します。 特定の種類の名前の設定がない場合は、適切なカテゴリにフォールバックします。
param
、type
、comp
、tparam
、proc
はすべてvar
にフォールバックします。intr
はproc
にフォールバックし、tbp
はcomp
またはproc
にフォールバックします。 ルールまたはフォールバックルールがない場合は、-idcase=オプション設定(またはデフォルト)が使用されます。 - -casex:name-list
- 文字の種類のルールの例外を指定します。
コロンの後には、必要な場合に応じて、名前のカンマ区切りリストが続きます。
たとえば、-casex:MaxVal,XYzは、
maxval
またはxyz
と同等の名前が出現するたびに、 それぞれMaxVal
またはXYz
として表示されます。 - -intrinsic_case=analogy
- 組込み手続き名の大文字小文字種別を、 他の名前(as_names)と同じにするか、 もしくは言語キーワード(as_keywords)と同じにするかを指定します。 デフォルトは-intrinsic_case=as_namesです。
- -remove_intrinsic_stmts
- 実引数として渡されなかった組込み手続き名を
INTRINSIC
文から削除します。 またその際に、全てのINTRINSIC
文がこのように削除された場合、INTRINSIC
文そのものも削除します。INTRINSIC
文に関連するコメントは削除されません。